package com.mmall.dao;

import com.mmall.pojo.Cart;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CartMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Cart record);

    int insertSelective(Cart record);

    Cart selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Cart record);

    int updateByPrimaryKey(Cart record);

    //通过用户id和商品id查找指定的购物车
    Cart selectCartByUserIdProductId(@Param("userId") Integer userId, @Param("productId") Integer productId);

    //通过用户id查找该用户的所有购物车
    List<Cart> selectCartsByUserId(Integer userId);

    //删除指定用户的一个或多个商品购物车
    int deleteByUserIdProductIds(@Param("userId") Integer userId, @Param("productList") List productList);

    //全选or全不选or单选or单独不选
    int checkedORNot(@Param("userId") Integer userId, @Param("checked") Integer checked, @Param("productId") Integer productId);

    //查询购物车中商品总件数
    int selectCartProductCount(Integer userId);

    //查询当前用户购物车中已勾选的商品用于生成订单
    List<Cart> selectCheckedCartByUserId(Integer userId);

}